package com.huiqiao.lesson7.proxy.staticProxy;

/**
 * 房产中介
 */
public class HouseProxy implements Rent {

    private Landlord landlord;

    /**
     * 通过构造方法，将代理对象注入代理类
     */
    public HouseProxy(Landlord landlord) {
        this.landlord = landlord;
    }

    @Override
    public void chargeRent(int money) {
        System.out.println("代理类开始执行chargeRent方法");
        landlord.chargeRent(money);
        System.out.println("代理类执行chargeRent方法结束");
    }

    /**
     * 测试方法
     */
    public static void main(String[] args) {
        // 生成房东
        Landlord landlord = new Landlord();
        // 生成房产中介
        HouseProxy houseProxy = new HouseProxy(landlord);
        // 生成租客
        Client client = new Client();

        // 房租10元
        int money = 10;
        // 房客开始支付房租
        client.pay(10);
        // 中介代理收租
        houseProxy.chargeRent(money);
    }
}
